Theory of computation by Deeba Kannan